package cn.tedu.hotel.serve.service;

import cn.tedu.hotel.serve.pojo.dto.HotelCurrentRoomsDTO;
import cn.tedu.hotel.serve.pojo.dto.OrdersDTO;

import cn.tedu.hotel.serve.pojo.vo.HotelCurrentRoomsVO;
import cn.tedu.hotel.serve.pojo.vo.OrderVO;
import cn.tedu.hotel.serve.pojo.vo.OrdersWithStateListVO;
import cn.tedu.hotel.serve.pojo.vo.UserOrdersListVO;
import org.springframework.transaction.annotation.Transactional;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;


@Transactional
public interface IOrdersService {
    Long CHECK_IN_TIME_HOURS=15L;

    Long Departure_TIME_HOURS=12L;

    String[] STATE = {"已完成","使用中","待使用"};

    String ORDER_STATE_HAD_PAY="已支付";

    String ORDER_STATE_HAD_DRAWBACK="已退款";

    String ORDER_STATE_HAD_CANCEL_ORDER="已取消";

    String ORDER_STATE_WAITING_PAY="待支付";

    int HOTEL_ROOM_NUMBER=10;

    int HOTEL_ORDERS_COUNT=1;

    String ORDER_FUNCTION_DRAWBACK="退款";

    String ORDER_FUNCTION_CANCEL_ORDER="取消订单";

    String ORDER_FUNCTION_DELETE_ORDER="删除订单";

    void addOrder(OrdersDTO ordersDTO);

    List<HotelCurrentRoomsVO> getCurrentRoomsByThreeColumn(HotelCurrentRoomsDTO hotelCurrentRoomsDTO);

    List<UserOrdersListVO> getUserOrdersList(Long userId);

    void updateOrderStateByOrderId(Long orderId);

    OrderVO getLatestOrderById(Long userId);

    void cancelOrderOrDrawback(Long orderId,String function);

    List<OrdersWithStateListVO> getAdminUserOrdersList();

    void deleteAdminOrdersById(Long id);


}
